﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using DTO;
using ABCComputer.BLL;

namespace ABCComputer.App_Code
{
    public class GioHang : System.Web.UI.Page
    {
        private List<GioHangDTO> gioHang;
        SanPhamBLL spBLL = new SanPhamBLL(); 

        public GioHang()
        {
            if (Session["GioHang"] == null)
            {
                gioHang = new List<GioHangDTO>();
                Session["GioHang"] = gioHang;
            }
            else
            {
                gioHang = (List<GioHangDTO>)Session["GioHang"];
            }
        }

        //thêm 1 sản phẩm vào giỏ hàng
        public void themGioHang(string masp)
        {
            bool kq = false;
            for (int i = 0; i < gioHang.Count; i++)
            {
                GioHangDTO sp = gioHang[i];
                if (sp.MaSanPham == masp) // san pham da co trong gio hang
                {
                    sp.SoLuong = sp.SoLuong + 1;
                    kq = true;
                    break;
                }
            }

            if (kq == false) // san pham dua vao khong co trong gio hang
            {
                GioHangDTO gh = spBLL.getSanPhamVaoGioHang(masp);
                gh.SoLuong = 1;
                gioHang.Add(gh);
            }
        }

        // xóa 1 sản phẩm ra khỏi giỏ hàng
        public void xoaMotSanPhamKhoiGioHang(string masp)
        {
            for (int i = 0; i < gioHang.Count; i++)
            {
                if (gioHang[i].MaSanPham == masp)
                    gioHang.RemoveAt(i);
            }
        }

        // cập nhật số lượng
        public void capNhatSoLuongSanPham(int i, string masp, int soluong)
        {
            if (gioHang[i].MaSanPham == masp)
                gioHang[i].SoLuong = soluong;         
        }

        // thanh tien
        public decimal thanhTien(int dong)
        {
            decimal thanhtien = 0;
            thanhtien = gioHang[dong].SoLuong * gioHang[dong].GiaBan;

            return thanhtien;
        }

         // tổng tiền
        public decimal tongTien(List<GioHangDTO> gioHang)
        {
            decimal tongtien = 0;
            for (int i = 0; i < gioHang.Count; i++)
            {
                tongtien = tongtien + gioHang[i].Thanhtien;
            }

            return tongtien;
        }
    }
}